import type { Ref, InjectionKey } from "vue";

export type NameType = string | number

export interface CollapseProps {
    // 当前打开的 items，可以多个，比如 ref(['a', 'c'])
    // 那么就是 a，c item打开
    modelValue: NameType[]
    // 是否支持手风琴模式，开启一个，另外一个自动关闭
    accordion?: boolean
}

export interface CollapseItemProps {
    name: NameType;
    title?: string;
    disabled?: boolean
}

export interface CollapseEmits {
    (e: 'update:modelValue', values: NameType[]): void;
    (e: 'change', values: NameType[]): void;
}

export interface CollapseContext {
    activeNames: Ref<NameType[]>,
    handleItemClick: (name: NameType) => void
}


// Symbol() 独一无二的
export const CollapseContextKey: InjectionKey<CollapseContext> = Symbol('CollapseContextKey')

